Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models. A number of different modeling techniques can be used to create a 3D model. One such technique is a solid modeling technique, which provides for topological 3D models where the 3D model is a collection of interconnected topological entities (e.g., vertices, edges, and faces). The topological entities have corresponding supporting geometrical entities (e.g., points, trimmed curves, and trimmed surfaces). The trimmed surfaces correspond to topological faces bounded by edges.
In general, a solid model consists of various features created by modeling operations. For example, a solid model may include a boss created by an extrude operation and a hole created by a cut operation. In addition to bosses and holes, features include fillets, shells, sweeps, and chamfers by way of non-limiting example.
CAD systems may combine solid modeling and other modeling techniques, such as parametric modeling techniques. Parametric modeling techniques can be used to define various parameters for different features and components of a model, and to define relationships between those features and components based on relationships between the various parameters. After a user has made a change to one or more parameters of the features, CAD systems may automatically rebuild a model from the features. Feature-based solid modeling allows for powerful editing capabilities during the design process, due in part to the inherent parametric characteristics.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates 3D parts and may assemble the 3D parts into a subassembly or an assembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies. Parts and subassemblies are hereinafter collectively referred to as components.
A two-dimensional representation of a 3D model is commonly used to prepare and formally document the design of the 3D model. Such a representation is referred to as a drawing. To create a drawing, which may include annotations and dimensions, a CAD system may refer to the 3D part model and reference vertices, edges, and faces in the model to construct the drawing.
Many CAD systems construct history-based CAD models. In general, a history-based CAD model of a part is constructed by creating a base feature controlled by a two-dimensional sketch, which then may be extruded using, by way of non-limiting example, a revolve, a loft, or a sweep operation. Each subsequent feature of the CAD model is built on a previous feature, and therefore is dependent on a previously created feature. When the user edits a feature of the history-based model, the model is rolled back to a previous state, that is, the state prior to the creation of subsequent dependent features. History-based modeling systems typically store incremental operations between a previous step in the design process and a current step. These incremental operations may achieve higher performance levels for rollback, as well as roll forward and other operations in comparison to rebuilding the entire model from the beginning. However, storing all these incremental operations with a model still affects performance given that a 3D part may be quite complex (e.g., include 100 or more features), and a 3D model may be quite complex (e.g., include thousands of subassemblies).
Incremental operations may allow for faster speeds when editing a part model. However, for larger models, the incremental operations have a significant effect on the size of the model, which affects operations such as loading, saving, and overall memory usage. In addition, a big impact that many users see is the rebuild time of a large model, which can happen for a variety of reasons, not just when working on a part, but also when the part is included in an assembly or drawing.
Once the design is complete or during the design process, the user may want to reduce the amount of data stored in a 3D model to increase performance of a CAD system. Additionally, the user may wish to remove extraneous features from a model that are no longer necessary. The user may also wish to hide proprietary aspects of a 3D model before sharing the 3D model with others, and therefore, wish to remove certain features.
To remove design features, the prior art enables users to export a 3D part model to a neutral format that only contains the model's geometry then import the 3D part model back into the CAD system without the defining topological features. Thus, only the geometry defines the 3D part model. The disadvantage with this approach is that if an assembly or a drawing uses the 3D part model, the face, edge, and vertex references will fail and the user will need to repair the failures by laboriously redefining each reference. A further disadvantage is that an assembly model and/or a drawing model may be stored in files to which the owner of the 3D part may only have read-access. Therefore, the user may not be permitted to repair the failures. A system and method that allows simplification of a 3D model while overcoming these disadvantages would be a beneficial improvement over the current state-of-the-art.